這是筆者對這個專案的初步規劃,主要分成幾部分:核心、使用教學與範例、自動建置及開發者體驗、程式工具包。雖然不確定在鐵人賽結束時會完成多少,但筆者還是來分享一下自己對這個專案的規劃細節吧。
核心部分主要會實作與 ChameleonUltra 的 Protocol,以便開發者可以使用這個 SDK 來對硬體下指令並讀取回傳的資料,讓大家可以快速的開發出自己想要的功能。
另外核心的部分還預計會實作三個不同的連接器,分別是 Web BLE、Web Serial 及 Node.js SerialPort,讓開發者可以在不同的作業系統、媒介或伺服器後端上面都能使用這個 SDK。
另外,由於這個 SDK 預計使用 js 來進行開發,所以希望可以做到只要有 Chrome 就能執行程式,不需要額外下載 APP 或是安裝其他應用程式,最大程度便利一般使用者可以直接使用。
因為筆者的目標是做出一個 SDK,所以就需要撰寫良好的文件,以及一些使用者可能會需要程式碼片段,大大的降低學習的成本,增加開發者體驗。另外,筆者也打算實作出自己想要的功能作為火力展示,方便一般使用者可以直接使用,如果是開發者也可以查看原始碼來參考,並且還希望可以找到願意開源貢獻的開發者,也可以一起合作做出更好用的程式出來,並且開 Pull Request 回到這個專案內。
筆者預計把這個 SDK 自動上傳到 npm 來方便其他開發者可以直接安裝,然後也預計把 ts 透過 rollup 自動編譯成瀏覽器可以執行的版本,讓開發者可以透過 jsDelivr 這類的服務直接把 SDK 透過 script 標籤放到網站上面執行。文件的部分也預計自動上傳到 GitHub Pages 方便開發者可以直接查看。還有筆者自己特地開發的示範程式的網頁也打算自動上傳到 GitHub Pages 讓一般使用者可以直接使用瀏覽器開啟。
另外針對想要協助這個專案的開發者,也需要撰寫一些幫助開發者快速入門的文件,以及方便在本地端開發及測試環境,增加開發者體驗。
這部份是打算放一些跟 ChameleonUltra 沒有直接關係,但是在開發示範程式的過程中所需要的一些輔助的函式庫或工具程式,方便其他開發者可以直接使用。目前預計有能夠再前後端使用的二進位資料處理物件 Buffer,以及能夠用來破解卡片區塊密碼的 Crypto1 相關程式。